//
// Created by francklinson on 2021/11/26 AT 10:33.
// May Saint Diana bless you!
//

#include <boost/shared_ptr.hpp>
#include <vector>
/**
 *  boost::shared_ptr 不一定要独占一个对象。
 *  它可以和其他 boost::shared_ptr 类型的智能指针共享所有权。
 *  在这种情况下，当引用对象的最后一个智能指针销毁后，对象才会被释放。
 * @return
 */
int main() {
    std::vector<boost::shared_ptr<int> > v;
    v.push_back(boost::shared_ptr<int>(new int(1)));
    v.push_back(boost::shared_ptr<int>(new int(2)));

    boost::shared_ptr<int> i1(new int(1));
    boost::shared_ptr<int> i2(i1);
    i1.reset(new int(2));
}
